package com.zz.chenko.common.utils;

import com.zz.chenko.common.entity.TreeObject;
import org.apache.commons.lang.StringUtils;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 菜单工具类
 *
 * @author zhong
 * @since 2017年8月18日
 */
public class MenuUtil {

    /**
     * 取得menu列表
     *
     * @return
     */
    @SuppressWarnings("unchecked")
    public static String getMenu(HttpServletRequest request) {
        List<TreeObject> menuTree = (List<TreeObject>) CacheUtil.get("menu", "menuTree");
        StringBuffer menuStr = new StringBuffer();
        for (TreeObject treeObject : menuTree) {
            menuStr.append("<li class=\"am-panel\">");
            menuStr.append("<a data-am-collapse=\"{parent: '#collapase-nav-1', target: '#");
            menuStr.append(treeObject.getItem().getPermission());
            menuStr.append("'}\"");
            menuStr.append("<i class=\"am-margin-left-sm ");
            menuStr.append(treeObject.getItem().getMenuIcon());
            menuStr.append("\"></i>&nbsp;&nbsp;");
            menuStr.append(treeObject.getItem().getMenuName());
            menuStr.append("<i class=\"am-icon-angle-right am-fr am-margin-right\" style=\"margin-top: 4px;\"></i>");
            menuStr.append("</a>");
            menuStr.append("<ul class=\"am-list am-collapse admin-sidebar-sub\" id=\"");
            menuStr.append(treeObject.getItem().getPermission());
            menuStr.append("\">");
            for (TreeObject treeObjectChild : treeObject.getChildren()) {
                menuStr.append("<li>");
                menuStr.append("<a href=\"");
                menuStr.append(StringUtils.substring(request.getRequestURI(), 0, request.getRequestURI()
                        .indexOf("/", 1)));
                menuStr.append(treeObjectChild.getItem().getMenuUrl());
                menuStr.append("\" class=\"am-margin-left-xl\">");
                menuStr.append(treeObjectChild.getItem().getMenuName());
                menuStr.append("</a>");
                menuStr.append("</li>");
            }
            menuStr.append("</ul>");
            menuStr.append("</li>");
        }
        return menuStr.toString();
    }
}
